Skip to content

Conversation

@UdjinM6
Copy link

@UdjinM6 UdjinM6 commented Aug 26, 2016

Merge bitcoin upstream 0.12, dashify were needed, fix conflicts.

NOTE:

  • .travis.yml is mostly preserved though dist changed to trusty, not sure if cache will still work, probably needs additional attention and testing; @schinzelh pls have a closer look;
  • release notes are not properly placed, need more work on this later + we should probably move our release notes from release-notes.md to another file because that one is "live";
  • mapAlreadyAskedFor now uses inv.hash as a key instead of inv itself, could be a good idea to make sure that all hashes for our invs are actually unique.

MarcoFalke and others added 30 commits April 5, 2016 11:53
Github-Pull: bitcoin#7684
Rebased-From: fa3a81a fad7dc8 fad8cfb
Github-Pull: bitcoin#7853
Rebased-From: faa41ee, fa7abe0

 Conflicts:
	qa/rpc-tests/invalidtxrequest.py
	qa/rpc-tests/p2p-feefilter.py
	qa/rpc-tests/proxy_test.py
	qa/rpc-tests/test_framework/mininode.py
	qa/rpc-tests/test_framework/netutil.py
	src/test/bctest.py
6862627 Add listunspent() test for spendable/unspendable UTXO (Joao Fonseca)
28ba22c [qa] Remove misleading "errorString syntax" (MarcoFalke)
f1f1b82 [qa] py2: Unfiddle strings into bytes explicitly (MarcoFalke)
c0d9e31 Tests: make prioritise_transaction.py more robust (Suhas Daftuar)
ff9b436 [qa] Bug fixes and refactor (MarcoFalke)
b1dd64b [qa] wallet: Wait for reindex to catch up (MarcoFalke)
f23cb7c [qa] Add tests verifychain, lockunspent, getbalance, listsinceblock (MarcoFalke)
3316552 [qa] Test walletpassphrase timeout (MarcoFalke)
6aae129 [qa] wallet: Print maintenance (MarcoFalke)
ad8c743 [qa] Extend tests (MarcoFalke)
d89fbfe [qa] rpc-test: Normalize assert() (MarcoFalke)
564aaa2 travis: switch to Trusty (Cory Fields)
9ca957b tests: Make proxy_test work on travis servers without IPv6 (Wladimir J. van der Laan)
It looks like, TorController::disconnected_cb(TorControlConnection&
conn) gets called multiple times which results in multiple event_new().

Avoid this by creating the event only once in the constructore, and
deleting it only once in the destructor (thanks to Cory Fields for the
idea).

Replaces the fix by Jonas Schnelli in bitcoin#7610, see discussion there.

Github-Pull: bitcoin#7637
Rebased-From: e219503
We do not know that a class of Network is reachable, only that it is not.

Github-Pull: bitcoin#7553
Rebased-From: 110b62f
curl is required to fetch dependencies

Github-Pull: bitcoin#7658
Rebased-From: ce41cf0
Previously we used the CInv that would be sent to the peer announcing the
transaction as the key, but using the txid instead allows us to decouple the
p2p layer from the application logic (which relies on this map to avoid
duplicate tx requests).

Github-Pull: bitcoin#7862
Rebased-From: 7e91f63
…/util.cpp`.

See bitcoin#7845 (comment).
Also refactored `GetDefaultDataDir` function to return path for Mac in one expression.

Github-Pull: bitcoin#7850
Rebased-From: 41dbc48
Previously we would assert that if every block in vBlockHashesToAnnounce is in
chainActive, then the blocks to be announced must connect.  However, there are
edge cases where this assumption could be violated (eg using invalidateblock /
reconsiderblock), so just check for this case and revert to inv-announcement
instead.

Github-Pull: bitcoin#7919
Rebased-From: 3a99fb2
MarcoFalke and others added 15 commits June 10, 2016 00:22
(cherry picked from commit fa8cd46)
dc38a53 [qa] Move create_tx() to util.py (MarcoFalke)
c0fe8b5 [qa] smartfees: Properly use ordered dict (MarcoFalke)
493b89e [qa] test_framework: Properly print exceptions and assert empty dict (MarcoFalke)
7a83489 Tests: Fix deserialization of reject messages (Suhas Daftuar)
e0b1bbe [qa] pull-tester: Don't mute zmq ImportError (MarcoFalke)
697ed8c Check if zmq is installed in tests, update docs (Elliot Olds)
d5a9de3 tests: Check Content-Type header returned from RPC server (Wladimir J. van der Laan)
ed2f0e3 [qa] maxblocksinflight: Actually enable test (MarcoFalke)
3036282 [qa] httpbasics: Actually test second connection (MarcoFalke)
afbc000 test_framework: python3.4 authproxy compat (Wladimir J. van der Laan)
80b6bfa test_framework: detect failure of bitcoind startup (Wladimir J. van der Laan)
4ffd309 Create SingleNodeConnCB class for RPC tests (Alex Morcos)
4fd6008 travis: 'make check' in parallel and verbose (Cory Fields)
2d2b045 Reenable multithread scheduler test (Pavel Janík)
658307e test: Add more thorough test for dbwrapper iterators (Wladimir J. van der Laan)
Printing Log without category defined should use LogPrintf
ba61949 Fix LogPrint to LogPrintf (TheLazieR Yip)
ffff324 [doc] 0.12: prepare release notes (MarcoFalke)
9462e79 This is a cherry-pick of 89c844d back to 0.12. (Johnathan Corgan)
932aedd Cherry-pick of f59dceb (bitcoin#7925) to 0.12. (Johnathan Corgan)
03c709b Backport leveldb build integration to 0.12 (Johnathan Corgan)
…CEVERIFY bitcoin#7540"

c4e5688 Rename NOP3 to CHECSEQUENCEVERIFY in rpc tests (BtcDrak)
ac5577b Rename OP_NOP3 to OP_CHECKSEQUENCEVERIFY (BtcDrak)
…hscreen/verification state

fe98533 [Qt] Disable some menu items during splashscreen/verification state (Jonas Schnelli)
NOTE: .travis.yml was mostly preserved, probably needs additional attention
@tgflynn
Copy link

tgflynn commented Aug 26, 2016

What's the relationship between this and this previous commit: #914 ?

Are we trying to sync with 2 different upstreams ?

@UdjinM6
Copy link
Author

UdjinM6 commented Aug 26, 2016

@tgflynn Bitpay's bitcoin is a fork of original bitcoin 0.12, it has additional feature on top of original and is optional. This merges original upstream which is more or less a must.

@tgflynn
Copy link

tgflynn commented Aug 26, 2016

So Bitpay's version doesn't itself track core ?

@UdjinM6
Copy link
Author

UdjinM6 commented Aug 26, 2016

@tgflynn like for any other fork it's completely up to them if they want to track it or not, we can't force them to do this the way we want :) Bitpay's version was more like "a one time merge of cool additional features" and I would keep it this way merging cherry-picking only critical patches for their features while merging the whole original upstream regardless of Bitpay's vision of tracking it.

@tgflynn
Copy link

tgflynn commented Aug 26, 2016

I take it there will still be another set of changes to merge from 0.12.1 ?

@tgflynn
Copy link

tgflynn commented Aug 26, 2016

What about this commit ?

025f090

"This brings Dash 0.12.1.x codebase in line with Bitcoin release 0.12.1" - 56 changed files.

@UdjinM6
Copy link
Author

UdjinM6 commented Aug 26, 2016

@tgflynn There is no 0.12.1 branch in bitcoin, they push everything 0.12.x to 0.12 (note 0.12.2. in few commits here already). 025f090 i.e. #897 is 1.5 month old, this brings new commits and aligns our codebase again.

Pushed 790607b to fix tests.

@tgflynn
Copy link

tgflynn commented Aug 26, 2016

Then these changes must be targeting bitcoin 0.13 because 0.12.1 was the last 0.12 release, AFAIK.

https://bitcoin.org/en/version-history

@UdjinM6
Copy link
Author

UdjinM6 commented Aug 26, 2016

@tgflynn
Copy link

tgflynn commented Aug 26, 2016

The last commit there was from July 11. I imagine they decided not to release 0.12.2 sometime between then and the 0.13 release. I certainly don't think they're going to do it now that 0.13 has been released. So I think these are changes that will either never go into a bitcoin release or will/have gone into 0.13 for the ones that were back-ported.

ret += strprintf("0x%x 0x%x ", HexStr(it2, it - vch.size()), HexStr(it - vch.size(), it));
} else {
ret += strprintf("0x%x", HexStr(it2, it));
ret += strprintf("0x%x ", HexStr(it2, it));
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks strange. HexStr returns a string but %x format normally expects an int type.

@eduffield222 eduffield222 merged commit f0140da into dashpay:v0.12.1.x Sep 13, 2016
@eduffield222
Copy link

Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.